<?php

namespace app\common\model\User;

use think\Model;

class Address extends Model
{
    // 收货地址
    protected $table = 'pre_user_address';

    protected $appnd = [
        "region_text",
        'address_text'
    ];
    // 关联查询
    public function provinces()
    {
        /**
         * belongsTo 相对
         * 第一个参数 模型名
         * 第二个参数 关联外键
         * 第三个参数 关联主键
         * 第四个参数 模型别名
         * 第五个参数 链表方法（JOIN）
         */
        return $this->belongsTo('app\common\model\Region', 'province', 'code', [], 'LEFT')->setEagerlyType(0);
    }

    public function citys()
    {
        /**
         * belongsTo 相对
         * 第一个参数 模型名
         * 第二个参数 关联外键
         * 第三个参数 关联主键
         * 第四个参数 模型别名
         * 第五个参数 链表方法（JOIN）
         */
        return $this->belongsTo('app\common\model\Region', 'city', 'code', [], 'LEFT')->setEagerlyType(0);
    }

    public function districts()
    {
        /**
         * belongsTo 相对
         * 第一个参数 模型名
         * 第二个参数 关联外键
         * 第三个参数 关联主键
         * 第四个参数 模型别名
         * 第五个参数 链表方法（JOIN）
         */
        return $this->belongsTo('app\common\model\Region', 'district', 'code', [], 'LEFT')->setEagerlyType(0);
    }

    protected $append = [
        'address_text'
    ];

    // 地区字段
    public function getAddressTextAttr($value, $data)
    {
        $ReogionList = [];
        if (!empty($data['province'])) {
            $ReogionList[] = model('Region')->where(['code' => $data['province']])->value('name');
        }
        if (!empty($data['city'])) {
            $ReogionList[] = model('Region')->where(['code' => $data['city']])->value('name');
        }
        if (!empty($data['district'])) {
            $ReogionList[] = model('Region')->where(['code' => $data['district']])->value('name');
        }
        $text =  implode('-', $ReogionList);
        return $text . ' ' . $data['address'];
    }

    //城市地区 省-市区
    public function getRegionTextAttr($value, $data)
    {
        # code...
        $ReogionList = [];
        if (!empty($data['province'])) {
            $ReogionList[] =  model('Region')->where(['code' => $data['province']])->value('name');
        }
        if (!empty($data['city'])) {
            $ReogionList[] =  model('Region')->where(['code' => $data['city']])->value('name');
        }
        if (!empty($data['district'])) {
            $ReogionList[] =  model('Region')->where(['code' => $data['district']])->value('name');
        }

        return implode('-', $ReogionList);
    }
}
